<?php

/**
 *
 */
class Mhoadon extends CI_Model {

    private $mahd;
    private $Status_mahd;
    private $matk;
    private $Status_matk;
    private $ngaydat;
    private $Status_ngaydat;
    private $tennn;
    private $diachi;
    private $sodt;
    private $ngaygiao;

    public function __construct() {
        parent::__construct();
        $this->load->database();
        $this->Oncreate();
    }

    private function Oncreate() {
        $this->mahd = 0;
        $this->Status_mahd = 0;
        $this->matk = "";
        $this->Status_matk = 0;
        $this->ngaydat = "";
        $this->Status_ngaydat = 0;
    }

    public function set_tennn($tennn) {
        $this->tennn = $tennn;
    }

    public function set_diachi($diachi) {
        $this->diachi = $diachi;
    }

    public function set_sodt($sodt) {
        $this->sodt = $sodt;
    }

    public function set_ngaygiao($ngaygiao) {
        $this->ngaygiao = $ngaygiao;
    }

    public function get_tennn() {
        return $this->tennn;
    }

    public function get_diachi() {
        return $this->diachi;
    }

    public function get_sodt() {
        return $this->sodt;
    }

    public function get_ngaygiao() {
        return $this->ngaygiao;
    }

    public function set_mahd($data) {
        $this->mahd = $data;
        $this->Status_mahd = 1;
    }

    public function set_matk($data) {
        $this->matk = $data;
        $this->Status_matk = 1;
    }

    public function set_ngay($data) {
        $this->ngaydat = $data;
        $this->Status_ngay = 1;
    }

    public function get_mahd() {
        return $this->mahd;
    }

    public function get_matk() {
        return $this->matk;
    }

    public function get_ngaydat() {
        return $this->ngaydat;
    }

    /**
     *
     * Get  Oject
     *
     * @strWhere    Mệnh đề where
     * @return     no return. đưa các giá trị vào object gọi hàm()
     *
     */
    public function getObject($strWhere) {
        $this->Oncreate();
        $this->db->where($strWhere, NULL, FALSE);
        $query = $this->db->get("hoadon");
        $ar = $query->row_array();
        if (!empty($ar)) {
            $this->mahd = $ar["MAHD"];
            $this->matk = $ar["MATK"];
            $this->ngaydat = $ar['NGAYDAT'];
            $this->ngaygiao = $ar['NGAYGIAO'];
            $this->sodt = $ar["SODT"];
            $this->tennn = $ar["TENNN"];
            $this->diachi = $ar["DIACHI"];
        }
    }

    /**
     *
     * Insert Object into database
     *
     */
    public function Save() {
        $data = array(
            "mahd"=>  $this->get_mahd(),
            "matk" => $this->matk,
            "ngaydat" => $this->ngaydat,
            "sodt" => $this->sodt,
            "tennn" => $this->tennn,
            "diachi" => $this->diachi, 
            "ngaygiao" => $this->ngaygiao);
        $isTrue = $this->db->insert("hoadon", $data);
        //$this->set_mahd($this->db->insert_id());
        return $isTrue;
    }
       /**
     *
     * Lây max giá trị kiểu int của 1 trường dữ liệu
     *    
     * @return          ID lớn nhất c
     *
     */
    public function GetLastID(){
        $data=$this->db->select('MAHD')->order_by('MAHD','DESC')->get('HOADON', 1);
        $data=$data->row_array();
        return $data['MAHD'];
    }

    /**
     *
     * Update Object có các field sử dụng hàm set_()
     *
     * @strWhere=null update tất cả các row trong database
     *
     */
    public function UpdateField($strWhere = NULL) {
        $arr = array();
        if ($this->Status_mahd == 1)
            $arr["mahd"] = $this->mahd;
        if ($this->Status_matk == 1)
            $arr["matk"] = $this->matk;
        if ($this->Status_ngay == 1)
            $arr["ngay"] = $this->ngay;
        if (!empty($strWhere)) {
            $this->db->where($strWhere, NULL, FALSE);
        }
        $this->db->update("hoadon", $arr);
    }

    /**
     *
     * Get list Oject
     *
     * @strFieldName         Các field cần lấy dữ liệu
     * @strWhere             Mệnh đề where
     * @strOrderby           Ex: 'title desc, name asc'
     * @Limit_Number_Row     Số dòng dữ liệu cần lấy ra
     * @Limit_Start_Index    Vị trí bắt đầu lấy dữ liệu
     *     foreach ($t as $value) {
      $ob=(object)($value);
      echo $ob->hoadonname;
      echo $ob->pass;
      }
     * @return               result_object();
     *
     */
    public function getListObject($strFieldName = NULL, $strWhere = NULL, $strOrderby = NULL, $Limit_Number_Row = NULL, $Limit_Start_Index = NULL) {
        if (!is_null($strWhere)) {
            $this->db->where($strWhere, NULL, FALSE);
        }
        if (!is_null($strFieldName)) {
            $this->db->select($strFieldName);
        }
        if (!is_null($strOrderby)) {
            $this->db->order_by($strOrderby);
        }
        if (!is_null($Limit_Number_Row)) {
            if (!is_null($Limit_Start_Index))
                $this->db->limit($Limit_Number_Row, $Limit_Start_Index);
            else {
                $this->db->limit($Limit_Number_Row);
            }
        }
        $query = $this->db->get("hoadon");
        return $query->result_object();
    }

    /**
     *
     * Get list Oject
     *
     * @strWhere    Mệnh đề where. Null sẽ xóa hết dữ liệu của table
     * @return      no
     *
     */
    public function Delete($strWhere = NULL) {
        if (!is_null($strWhere)) {
            $this->db->where($strWhere, NULL, FALSE);
            $this->db->delete("hoadon");
        }
        else
            $this->db->empty_table('hoadon');
    }

    /**
     *
     * Lây max giá trị kiểu int của 1 trường dữ liệu
     *
     * @strFieldName    Trường dữ liệu cần lấy max(1 trường duy nhất)
     * @strWhere        Mệnh đề where
     * @return          1 giá trị kiểu string
     *
     */
    public function Max($strFieldName, $strWhere = NULL) {
        if (!is_null($strWhere))
            $this->db->where($strWhere, NULL, FALSE);
        $this->db->select_max($strFieldName);
        $query = $this->db->get('hoadon');
        $ob = $query->row_array();
  
        return $ob[$strFieldName];
    }

}

?>